package ar.com.vates.collections4;

import java.util.LinkedList;
import java.util.Collections;

public class Agenda {

	private LinkedList<Contacto> agenda;

	public Agenda() {
		this.agenda = new LinkedList<Contacto>();
	}

	public LinkedList<Contacto> getAgenda() {
		return agenda;
	}

	public boolean addContacto(Contacto c) {
		if (agenda.add(c)) {
			Collections.sort(agenda);
			return true;
		} else
			return false;
	}

	public boolean removeContacto(Contacto c) {
		for (Contacto x : agenda) {
			if (x.equals(c))
				if (agenda.remove(x))
					return true;
		}
		return false;
	}

	public boolean removeContacto(String nombre) {
		if (buscarContacto(nombre) != null)
			if (removeContacto(buscarContacto(nombre)))
				return true;

		return false;
	}

	public String getListaContactos() {
		String res = "";
		for (Contacto x : agenda) {
			res += x.toString() + "\n";
		}
		return res;
	}

	public Contacto buscarContacto(String nombre) {

		Contacto res = null;

		for (Contacto x : agenda) {
			if (x.getNombre().equalsIgnoreCase(nombre)) {
				res = x;
				break;
			}
		}
		return res; // si no encuentra ningun contacto devuelve null
	}

	public String getDatosContacto(String nombre) {
		if (buscarContacto(nombre) != null)
			return buscarContacto(nombre).toString();
		else
			return "\nNo se encontro a " + nombre;
	}

	public int getCantidadContactos() {
		return agenda.size();
	}
}